//
//  MYTabBar.swift
//  MYWeibo
//
//  Created by Magic Yu on 16/4/13.
//  Copyright © 2016年 Magic Yu. All rights reserved.
//

import UIKit

class MYTabBar: UITabBar {
    
    //在初始化方法中添加按钮最合适
    override init(frame: CGRect) {
        super.init(frame: frame)  //表示一个对象构造完毕 其他方法要写在这个方法的下面
        //添加按钮
        addSubview(plusBtn)
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented") //默认不支持xib/storyBoard加载视图
//        super.init(coder: aDecoder)  //同时支持手写代码创建及xib/storyBoard加载视图
//        addSubview(plusBtn)
    }

    //获取subViews中的 tabBarButton 的frame
    override func layoutSubviews() {
        super.layoutSubviews()
        
        //计算出添加中间按钮后的 每个按钮的frame
        let width = UIScreen.mainScreen().bounds.width/5
        let height = self.bounds.height
        
        let rect = CGRectMake(0, 0, width, height)
        
        var index = 0
        
        //遍历控件
        for subView in subviews {
        
            //print(subView)
            //UITabBarButton是一个私有类 不能直接拿到它的类型 只能通过NSClassFromString这种方式
            if subView.isKindOfClass(NSClassFromString("UITabBarButton")!) {
            //print(subView)
                //修改按钮的frame
                //subView.frame = CGRectMake(CGFloat(index) * width, 0, width, height)//这种方式也可以
                //根据每次遍历改变x的位移
                subView.frame = CGRectOffset(rect, CGFloat(index) * width, 0)
//                index++
//                if index == 2 {
//                index++
//                }
                
                index += (index == 1) ? 2 : 1
                
            }
        }
        
        //设置按钮的frame
        plusBtn.frame = CGRectOffset(CGRect(x: 0, y: 0, width: width, height: width), 2 * width, 0)
        //将按钮移到最上层
        bringSubviewToFront(plusBtn)
        
    }
    
    //懒加载按钮
    lazy var plusBtn: UIButton = {
    
        let btn = UIButton()
        //设置背景图片
        btn.setBackgroundImage(UIImage(named: "tabbar1_compose_button"), forState: .Normal)
        btn.setBackgroundImage(UIImage(named: "tabbar1_compose_button_highlighted"), forState: .Highlighted)
        //设置图片
        btn.setImage(UIImage(named: "tabbar_compose_icon_add"), forState: .Normal)
        btn.setImage(UIImage(named: "tabbar_compose_icon_add_highlighted"), forState: .Highlighted)
        return btn
        
    }()
}







